// $ANTLR 3.4 F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g 2012-04-25 20:48:53

  package database.queryparser;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class ParserGrammerParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "IDENT", "INTEGER", "WS", "'!='", "'&&'", "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "';'", "'<'", "'<='", "'='", "'>'", "'>='", "'AND'", "'ASC'", "'Asc'", "'CREATE'", "'Create'", "'DESC'", "'DROP'", "'Desc'", "'Drop'", "'FROM'", "'From'", "'INDEX'", "'INSERT'", "'INTEGER'", "'INTO'", "'Index'", "'Insert'", "'Integer'", "'Into'", "'LIMIT'", "'Limit'", "'ON'", "'OR'", "'ORDER BY'", "'On'", "'Order By'", "'Order by'", "'PRIMARY KEY'", "'Primary Key'", "'SELECT'", "'Select'", "'TABLE'", "'Table'", "'VALUES'", "'Values'", "'WHERE'", "'Where'", "'and'", "'asc'", "'create'", "'desc'", "'drop'", "'from'", "'index'", "'insert'", "'integer'", "'into'", "'limit'", "'mod'", "'not'", "'oN'", "'on'", "'or'", "'order by'", "'primary key'", "'select'", "'table'", "'values'", "'where'", "'||'"
    };

    public static final int EOF=-1;
    public static final int T__7=7;
    public static final int T__8=8;
    public static final int T__9=9;
    public static final int T__10=10;
    public static final int T__11=11;
    public static final int T__12=12;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__15=15;
    public static final int T__16=16;
    public static final int T__17=17;
    public static final int T__18=18;
    public static final int T__19=19;
    public static final int T__20=20;
    public static final int T__21=21;
    public static final int T__22=22;
    public static final int T__23=23;
    public static final int T__24=24;
    public static final int T__25=25;
    public static final int T__26=26;
    public static final int T__27=27;
    public static final int T__28=28;
    public static final int T__29=29;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__50=50;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__59=59;
    public static final int T__60=60;
    public static final int T__61=61;
    public static final int T__62=62;
    public static final int T__63=63;
    public static final int T__64=64;
    public static final int T__65=65;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int T__70=70;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int T__73=73;
    public static final int T__74=74;
    public static final int T__75=75;
    public static final int T__76=76;
    public static final int T__77=77;
    public static final int T__78=78;
    public static final int T__79=79;
    public static final int T__80=80;
    public static final int T__81=81;
    public static final int T__82=82;
    public static final int IDENT=4;
    public static final int INTEGER=5;
    public static final int WS=6;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public ParserGrammerParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public ParserGrammerParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return ParserGrammerParser.tokenNames; }
    public String getGrammarFileName() { return "F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g"; }



    // $ANTLR start "statement"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:15:1: statement : ( ( ( 'CREATE' | 'create' ) ( 'table' | 'TABLE' ) IDENT '(' ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )* ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )* ) ')' ';' ) | ( ( 'CREATE' | 'create' | 'Create' ) ( 'index' | 'INDEX' | 'Index' ) IDENT ( 'on' | 'ON' | 'On' | 'oN' ) IDENT '(' IDENT ')' ';' ) | ( ( 'insert' | 'Insert' | 'INSERT' ) ( 'into' | 'INTO' | 'Into' ) IDENT ( 'values' | 'VALUES' | 'Values' ) '(' INTEGER ( ( ',' ) INTEGER )* ')' ';' ) | ( ( 'drop' | 'DROP' | 'Drop' ) ( 'index' | 'INDEX' | 'Index' | 'table' | 'TABLE' | 'Table' ) IDENT ) ';' | ( ( 'SELECT' | 'select' | 'Select' ) ( '*' | ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) ) ) ( 'from' | 'FROM' | 'From' ) ( IDENT ',' )* ( IDENT ) ( ( 'where' | 'WHERE' | 'Where' ) ( expression ) )* ( ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )* )* ';' ) );
    public final void statement() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:16:7: ( ( ( 'CREATE' | 'create' ) ( 'table' | 'TABLE' ) IDENT '(' ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )* ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )* ) ')' ';' ) | ( ( 'CREATE' | 'create' | 'Create' ) ( 'index' | 'INDEX' | 'Index' ) IDENT ( 'on' | 'ON' | 'On' | 'oN' ) IDENT '(' IDENT ')' ';' ) | ( ( 'insert' | 'Insert' | 'INSERT' ) ( 'into' | 'INTO' | 'Into' ) IDENT ( 'values' | 'VALUES' | 'Values' ) '(' INTEGER ( ( ',' ) INTEGER )* ')' ';' ) | ( ( 'drop' | 'DROP' | 'Drop' ) ( 'index' | 'INDEX' | 'Index' | 'table' | 'TABLE' | 'Table' ) IDENT ) ';' | ( ( 'SELECT' | 'select' | 'Select' ) ( '*' | ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) ) ) ( 'from' | 'FROM' | 'From' ) ( IDENT ',' )* ( IDENT ) ( ( 'where' | 'WHERE' | 'Where' ) ( expression ) )* ( ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )* )* ';' ) )
            int alt14=5;
            switch ( input.LA(1) ) {
            case 26:
            case 62:
                {
                int LA14_1 = input.LA(2);

                if ( (LA14_1==54||LA14_1==79) ) {
                    alt14=1;
                }
                else if ( (LA14_1==34||LA14_1==38||LA14_1==66) ) {
                    alt14=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 14, 1, input);

                    throw nvae;

                }
                }
                break;
            case 27:
                {
                alt14=2;
                }
                break;
            case 35:
            case 39:
            case 67:
                {
                alt14=3;
                }
                break;
            case 29:
            case 31:
            case 64:
                {
                alt14=4;
                }
                break;
            case 52:
            case 53:
            case 78:
                {
                alt14=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;

            }

            switch (alt14) {
                case 1 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:16:8: ( ( 'CREATE' | 'create' ) ( 'table' | 'TABLE' ) IDENT '(' ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )* ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )* ) ')' ';' )
                    {
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:16:8: ( ( 'CREATE' | 'create' ) ( 'table' | 'TABLE' ) IDENT '(' ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )* ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )* ) ')' ';' )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:16:10: ( 'CREATE' | 'create' ) ( 'table' | 'TABLE' ) IDENT '(' ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )* ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )* ) ')' ';'
                    {
                    if ( input.LA(1)==26||input.LA(1)==62 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    if ( input.LA(1)==54||input.LA(1)==79 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,IDENT,FOLLOW_IDENT_in_statement64); 

                    match(input,9,FOLLOW_9_in_statement73); 

                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:18:8: ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )*
                    loop2:
                    do {
                        int alt2=2;
                        alt2 = dfa2.predict(input);
                        switch (alt2) {
                    	case 1 :
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:18:9: IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ','
                    	    {
                    	    match(input,IDENT,FOLLOW_IDENT_in_statement84); 

                    	    if ( input.LA(1)==36||input.LA(1)==40||input.LA(1)==68 ) {
                    	        input.consume();
                    	        state.errorRecovery=false;
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        throw mse;
                    	    }


                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:18:51: ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )*
                    	    loop1:
                    	    do {
                    	        int alt1=2;
                    	        int LA1_0 = input.LA(1);

                    	        if ( ((LA1_0 >= 50 && LA1_0 <= 51)||LA1_0==77) ) {
                    	            alt1=1;
                    	        }


                    	        switch (alt1) {
                    	    	case 1 :
                    	    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:
                    	    	    {
                    	    	    if ( (input.LA(1) >= 50 && input.LA(1) <= 51)||input.LA(1)==77 ) {
                    	    	        input.consume();
                    	    	        state.errorRecovery=false;
                    	    	    }
                    	    	    else {
                    	    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    	        throw mse;
                    	    	    }


                    	    	    }
                    	    	    break;

                    	    	default :
                    	    	    break loop1;
                    	        }
                    	    } while (true);


                    	    match(input,13,FOLLOW_13_in_statement111); 

                    	    }
                    	    break;

                    	default :
                    	    break loop2;
                        }
                    } while (true);


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:19:8: ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )* )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:19:9: IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' )*
                    {
                    match(input,IDENT,FOLLOW_IDENT_in_statement123); 

                    if ( input.LA(1)==36||input.LA(1)==40||input.LA(1)==68 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:19:51: ( 'Primary Key' | 'primary key' )*
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( (LA3_0==51||LA3_0==77) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:
                    	    {
                    	    if ( input.LA(1)==51||input.LA(1)==77 ) {
                    	        input.consume();
                    	        state.errorRecovery=false;
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        throw mse;
                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop3;
                        }
                    } while (true);


                    }


                    match(input,10,FOLLOW_10_in_statement153); 

                    match(input,17,FOLLOW_17_in_statement155); 

                    }


                    }
                    break;
                case 2 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:25:7: ( ( 'CREATE' | 'create' | 'Create' ) ( 'index' | 'INDEX' | 'Index' ) IDENT ( 'on' | 'ON' | 'On' | 'oN' ) IDENT '(' IDENT ')' ';' )
                    {
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:25:7: ( ( 'CREATE' | 'create' | 'Create' ) ( 'index' | 'INDEX' | 'Index' ) IDENT ( 'on' | 'ON' | 'On' | 'oN' ) IDENT '(' IDENT ')' ';' )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:25:9: ( 'CREATE' | 'create' | 'Create' ) ( 'index' | 'INDEX' | 'Index' ) IDENT ( 'on' | 'ON' | 'On' | 'oN' ) IDENT '(' IDENT ')' ';'
                    {
                    if ( (input.LA(1) >= 26 && input.LA(1) <= 27)||input.LA(1)==62 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    if ( input.LA(1)==34||input.LA(1)==38||input.LA(1)==66 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,IDENT,FOLLOW_IDENT_in_statement227); 

                    if ( input.LA(1)==44||input.LA(1)==47||(input.LA(1) >= 73 && input.LA(1) <= 74) ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,IDENT,FOLLOW_IDENT_in_statement244); 

                    match(input,9,FOLLOW_9_in_statement246); 

                    match(input,IDENT,FOLLOW_IDENT_in_statement248); 

                    match(input,10,FOLLOW_10_in_statement250); 

                    match(input,17,FOLLOW_17_in_statement252); 

                    }


                    }
                    break;
                case 3 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:30:7: ( ( 'insert' | 'Insert' | 'INSERT' ) ( 'into' | 'INTO' | 'Into' ) IDENT ( 'values' | 'VALUES' | 'Values' ) '(' INTEGER ( ( ',' ) INTEGER )* ')' ';' )
                    {
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:30:7: ( ( 'insert' | 'Insert' | 'INSERT' ) ( 'into' | 'INTO' | 'Into' ) IDENT ( 'values' | 'VALUES' | 'Values' ) '(' INTEGER ( ( ',' ) INTEGER )* ')' ';' )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:30:9: ( 'insert' | 'Insert' | 'INSERT' ) ( 'into' | 'INTO' | 'Into' ) IDENT ( 'values' | 'VALUES' | 'Values' ) '(' INTEGER ( ( ',' ) INTEGER )* ')' ';'
                    {
                    if ( input.LA(1)==35||input.LA(1)==39||input.LA(1)==67 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    if ( input.LA(1)==37||input.LA(1)==41||input.LA(1)==69 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,IDENT,FOLLOW_IDENT_in_statement309); 

                    if ( (input.LA(1) >= 56 && input.LA(1) <= 57)||input.LA(1)==80 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,9,FOLLOW_9_in_statement330); 

                    match(input,INTEGER,FOLLOW_INTEGER_in_statement332); 

                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:31:19: ( ( ',' ) INTEGER )*
                    loop4:
                    do {
                        int alt4=2;
                        int LA4_0 = input.LA(1);

                        if ( (LA4_0==13) ) {
                            alt4=1;
                        }


                        switch (alt4) {
                    	case 1 :
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:31:20: ( ',' ) INTEGER
                    	    {
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:31:20: ( ',' )
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:31:21: ','
                    	    {
                    	    match(input,13,FOLLOW_13_in_statement336); 

                    	    }


                    	    match(input,INTEGER,FOLLOW_INTEGER_in_statement339); 

                    	    }
                    	    break;

                    	default :
                    	    break loop4;
                        }
                    } while (true);


                    match(input,10,FOLLOW_10_in_statement343); 

                    match(input,17,FOLLOW_17_in_statement345); 

                    }


                    }
                    break;
                case 4 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:36:8: ( ( 'drop' | 'DROP' | 'Drop' ) ( 'index' | 'INDEX' | 'Index' | 'table' | 'TABLE' | 'Table' ) IDENT ) ';'
                    {
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:36:8: ( ( 'drop' | 'DROP' | 'Drop' ) ( 'index' | 'INDEX' | 'Index' | 'table' | 'TABLE' | 'Table' ) IDENT )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:36:10: ( 'drop' | 'DROP' | 'Drop' ) ( 'index' | 'INDEX' | 'Index' | 'table' | 'TABLE' | 'Table' ) IDENT
                    {
                    if ( input.LA(1)==29||input.LA(1)==31||input.LA(1)==64 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    if ( input.LA(1)==34||input.LA(1)==38||(input.LA(1) >= 54 && input.LA(1) <= 55)||input.LA(1)==66||input.LA(1)==79 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    match(input,IDENT,FOLLOW_IDENT_in_statement435); 

                    }


                    match(input,17,FOLLOW_17_in_statement438); 

                    }
                    break;
                case 5 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:8: ( ( 'SELECT' | 'select' | 'Select' ) ( '*' | ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) ) ) ( 'from' | 'FROM' | 'From' ) ( IDENT ',' )* ( IDENT ) ( ( 'where' | 'WHERE' | 'Where' ) ( expression ) )* ( ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )* )* ';' )
                    {
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:8: ( ( 'SELECT' | 'select' | 'Select' ) ( '*' | ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) ) ) ( 'from' | 'FROM' | 'From' ) ( IDENT ',' )* ( IDENT ) ( ( 'where' | 'WHERE' | 'Where' ) ( expression ) )* ( ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )* )* ';' )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:10: ( 'SELECT' | 'select' | 'Select' ) ( '*' | ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) ) ) ( 'from' | 'FROM' | 'From' ) ( IDENT ',' )* ( IDENT ) ( ( 'where' | 'WHERE' | 'Where' ) ( expression ) )* ( ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )* )* ';'
                    {
                    if ( (input.LA(1) >= 52 && input.LA(1) <= 53)||input.LA(1)==78 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:43: ( '*' | ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) ) )
                    int alt8=2;
                    int LA8_0 = input.LA(1);

                    if ( (LA8_0==11) ) {
                        alt8=1;
                    }
                    else if ( (LA8_0==IDENT) ) {
                        alt8=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 8, 0, input);

                        throw nvae;

                    }
                    switch (alt8) {
                        case 1 :
                            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:44: '*'
                            {
                            match(input,11,FOLLOW_11_in_statement501); 

                            }
                            break;
                        case 2 :
                            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:50: ( IDENT '.' IDENT ',' )* ( IDENT ',' )* ( ( IDENT '.' IDENT ) | ( IDENT ) )
                            {
                            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:50: ( IDENT '.' IDENT ',' )*
                            loop5:
                            do {
                                int alt5=2;
                                int LA5_0 = input.LA(1);

                                if ( (LA5_0==IDENT) ) {
                                    int LA5_1 = input.LA(2);

                                    if ( (LA5_1==15) ) {
                                        int LA5_3 = input.LA(3);

                                        if ( (LA5_3==IDENT) ) {
                                            int LA5_4 = input.LA(4);

                                            if ( (LA5_4==13) ) {
                                                alt5=1;
                                            }


                                        }


                                    }


                                }


                                switch (alt5) {
                            	case 1 :
                            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:51: IDENT '.' IDENT ','
                            	    {
                            	    match(input,IDENT,FOLLOW_IDENT_in_statement506); 

                            	    match(input,15,FOLLOW_15_in_statement508); 

                            	    match(input,IDENT,FOLLOW_IDENT_in_statement510); 

                            	    match(input,13,FOLLOW_13_in_statement512); 

                            	    }
                            	    break;

                            	default :
                            	    break loop5;
                                }
                            } while (true);


                            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:72: ( IDENT ',' )*
                            loop6:
                            do {
                                int alt6=2;
                                int LA6_0 = input.LA(1);

                                if ( (LA6_0==IDENT) ) {
                                    int LA6_1 = input.LA(2);

                                    if ( (LA6_1==13) ) {
                                        alt6=1;
                                    }


                                }


                                switch (alt6) {
                            	case 1 :
                            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:73: IDENT ','
                            	    {
                            	    match(input,IDENT,FOLLOW_IDENT_in_statement516); 

                            	    match(input,13,FOLLOW_13_in_statement518); 

                            	    }
                            	    break;

                            	default :
                            	    break loop6;
                                }
                            } while (true);


                            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:85: ( ( IDENT '.' IDENT ) | ( IDENT ) )
                            int alt7=2;
                            int LA7_0 = input.LA(1);

                            if ( (LA7_0==IDENT) ) {
                                int LA7_1 = input.LA(2);

                                if ( (LA7_1==15) ) {
                                    alt7=1;
                                }
                                else if ( ((LA7_1 >= 32 && LA7_1 <= 33)||LA7_1==65) ) {
                                    alt7=2;
                                }
                                else {
                                    NoViableAltException nvae =
                                        new NoViableAltException("", 7, 1, input);

                                    throw nvae;

                                }
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 7, 0, input);

                                throw nvae;

                            }
                            switch (alt7) {
                                case 1 :
                                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:86: ( IDENT '.' IDENT )
                                    {
                                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:86: ( IDENT '.' IDENT )
                                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:87: IDENT '.' IDENT
                                    {
                                    match(input,IDENT,FOLLOW_IDENT_in_statement524); 

                                    match(input,15,FOLLOW_15_in_statement526); 

                                    match(input,IDENT,FOLLOW_IDENT_in_statement528); 

                                    }


                                    }
                                    break;
                                case 2 :
                                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:106: ( IDENT )
                                    {
                                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:106: ( IDENT )
                                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:40:107: IDENT
                                    {
                                    match(input,IDENT,FOLLOW_IDENT_in_statement534); 

                                    }


                                    }
                                    break;

                            }


                            }
                            break;

                    }


                    if ( (input.LA(1) >= 32 && input.LA(1) <= 33)||input.LA(1)==65 ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:41:35: ( IDENT ',' )*
                    loop9:
                    do {
                        int alt9=2;
                        int LA9_0 = input.LA(1);

                        if ( (LA9_0==IDENT) ) {
                            int LA9_1 = input.LA(2);

                            if ( (LA9_1==13) ) {
                                alt9=1;
                            }


                        }


                        switch (alt9) {
                    	case 1 :
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:41:36: IDENT ','
                    	    {
                    	    match(input,IDENT,FOLLOW_IDENT_in_statement561); 

                    	    match(input,13,FOLLOW_13_in_statement563); 

                    	    }
                    	    break;

                    	default :
                    	    break loop9;
                        }
                    } while (true);


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:41:48: ( IDENT )
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:41:49: IDENT
                    {
                    match(input,IDENT,FOLLOW_IDENT_in_statement568); 

                    }


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:42:8: ( ( 'where' | 'WHERE' | 'Where' ) ( expression ) )*
                    loop10:
                    do {
                        int alt10=2;
                        int LA10_0 = input.LA(1);

                        if ( ((LA10_0 >= 58 && LA10_0 <= 59)||LA10_0==81) ) {
                            alt10=1;
                        }


                        switch (alt10) {
                    	case 1 :
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:42:9: ( 'where' | 'WHERE' | 'Where' ) ( expression )
                    	    {
                    	    if ( (input.LA(1) >= 58 && input.LA(1) <= 59)||input.LA(1)==81 ) {
                    	        input.consume();
                    	        state.errorRecovery=false;
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        throw mse;
                    	    }


                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:42:39: ( expression )
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:42:40: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_statement592);
                    	    expression();

                    	    state._fsp--;


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop10;
                        }
                    } while (true);


                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:43:9: ( ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )* )*
                    loop13:
                    do {
                        int alt13=2;
                        int LA13_0 = input.LA(1);

                        if ( (LA13_0==46||(LA13_0 >= 48 && LA13_0 <= 49)||LA13_0==76) ) {
                            alt13=1;
                        }


                        switch (alt13) {
                    	case 1 :
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:43:10: ( 'order by' | 'ORDER BY' | 'Order By' | 'Order by' ) ( expression ) ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )*
                    	    {
                    	    if ( input.LA(1)==46||(input.LA(1) >= 48 && input.LA(1) <= 49)||input.LA(1)==76 ) {
                    	        input.consume();
                    	        state.errorRecovery=false;
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        throw mse;
                    	    }


                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:43:62: ( expression )
                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:43:63: expression
                    	    {
                    	    pushFollow(FOLLOW_expression_in_statement624);
                    	    expression();

                    	    state._fsp--;


                    	    }


                    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:43:75: ( ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )* )*
                    	    loop12:
                    	    do {
                    	        int alt12=2;
                    	        int LA12_0 = input.LA(1);

                    	        if ( ((LA12_0 >= 24 && LA12_0 <= 25)||LA12_0==28||LA12_0==30||LA12_0==61||LA12_0==63) ) {
                    	            alt12=1;
                    	        }


                    	        switch (alt12) {
                    	    	case 1 :
                    	    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:43:76: ( 'desc' | 'DESC' | 'Desc' | 'ASC' | 'asc' | 'Asc' ) ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )*
                    	    	    {
                    	    	    if ( (input.LA(1) >= 24 && input.LA(1) <= 25)||input.LA(1)==28||input.LA(1)==30||input.LA(1)==61||input.LA(1)==63 ) {
                    	    	        input.consume();
                    	    	        state.errorRecovery=false;
                    	    	    }
                    	    	    else {
                    	    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    	        throw mse;
                    	    	    }


                    	    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:44:9: ( ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER )*
                    	    	    loop11:
                    	    	    do {
                    	    	        int alt11=2;
                    	    	        int LA11_0 = input.LA(1);

                    	    	        if ( ((LA11_0 >= 42 && LA11_0 <= 43)||LA11_0==70) ) {
                    	    	            alt11=1;
                    	    	        }


                    	    	        switch (alt11) {
                    	    	    	case 1 :
                    	    	    	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:44:10: ( 'LIMIT' | 'Limit' | 'limit' ) INTEGER
                    	    	    	    {
                    	    	    	    if ( (input.LA(1) >= 42 && input.LA(1) <= 43)||input.LA(1)==70 ) {
                    	    	    	        input.consume();
                    	    	    	        state.errorRecovery=false;
                    	    	    	    }
                    	    	    	    else {
                    	    	    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	    	    	        throw mse;
                    	    	    	    }


                    	    	    	    match(input,INTEGER,FOLLOW_INTEGER_in_statement672); 

                    	    	    	    }
                    	    	    	    break;

                    	    	    	default :
                    	    	    	    break loop11;
                    	    	        }
                    	    	    } while (true);


                    	    	    }
                    	    	    break;

                    	    	default :
                    	    	    break loop12;
                    	        }
                    	    } while (true);


                    	    }
                    	    break;

                    	default :
                    	    break loop13;
                        }
                    } while (true);


                    match(input,17,FOLLOW_17_in_statement681); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "statement"



    // $ANTLR start "statement1"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:49:1: statement1 : assignment ;
    public final void statement1() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:50:9: ( assignment )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:50:11: assignment
            {
            pushFollow(FOLLOW_assignment_in_statement1727);
            assignment();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "statement1"



    // $ANTLR start "assignment"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:53:1: assignment : IDENT '=' expression ;
    public final void assignment() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:54:10: ( IDENT '=' expression )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:54:12: IDENT '=' expression
            {
            match(input,IDENT,FOLLOW_IDENT_in_assignment759); 

            match(input,20,FOLLOW_20_in_assignment761); 

            pushFollow(FOLLOW_expression_in_assignment763);
            expression();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "assignment"



    // $ANTLR start "term"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:59:1: term : ( IDENT | '(' expression ')' | INTEGER );
    public final void term() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:60:5: ( IDENT | '(' expression ')' | INTEGER )
            int alt15=3;
            switch ( input.LA(1) ) {
            case IDENT:
                {
                alt15=1;
                }
                break;
            case 9:
                {
                alt15=2;
                }
                break;
            case INTEGER:
                {
                alt15=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;

            }

            switch (alt15) {
                case 1 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:60:7: IDENT
                    {
                    match(input,IDENT,FOLLOW_IDENT_in_term805); 

                    }
                    break;
                case 2 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:61:7: '(' expression ')'
                    {
                    match(input,9,FOLLOW_9_in_term813); 

                    pushFollow(FOLLOW_expression_in_term815);
                    expression();

                    state._fsp--;


                    match(input,10,FOLLOW_10_in_term817); 

                    }
                    break;
                case 3 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:62:7: INTEGER
                    {
                    match(input,INTEGER,FOLLOW_INTEGER_in_term825); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "term"



    // $ANTLR start "negation"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:65:1: negation : ( 'not' )? term ;
    public final void negation() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:66:9: ( ( 'not' )? term )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:66:11: ( 'not' )? term
            {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:66:11: ( 'not' )?
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==72) ) {
                alt16=1;
            }
            switch (alt16) {
                case 1 :
                    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:66:11: 'not'
                    {
                    match(input,72,FOLLOW_72_in_negation846); 

                    }
                    break;

            }


            pushFollow(FOLLOW_term_in_negation849);
            term();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "negation"



    // $ANTLR start "unary"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:69:1: unary : ( '+' | '-' )* negation ;
    public final void unary() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:70:5: ( ( '+' | '-' )* negation )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:70:7: ( '+' | '-' )* negation
            {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:70:7: ( '+' | '-' )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0==12||LA17_0==14) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:
            	    {
            	    if ( input.LA(1)==12||input.LA(1)==14 ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop17;
                }
            } while (true);


            pushFollow(FOLLOW_negation_in_unary885);
            negation();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "unary"



    // $ANTLR start "mult"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:73:1: mult : unary ( ( '*' | '/' | 'mod' ) unary )* ;
    public final void mult() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:74:5: ( unary ( ( '*' | '/' | 'mod' ) unary )* )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:74:7: unary ( ( '*' | '/' | 'mod' ) unary )*
            {
            pushFollow(FOLLOW_unary_in_mult906);
            unary();

            state._fsp--;


            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:74:13: ( ( '*' | '/' | 'mod' ) unary )*
            loop18:
            do {
                int alt18=2;
                int LA18_0 = input.LA(1);

                if ( (LA18_0==11||LA18_0==16||LA18_0==71) ) {
                    alt18=1;
                }


                switch (alt18) {
            	case 1 :
            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:74:14: ( '*' | '/' | 'mod' ) unary
            	    {
            	    if ( input.LA(1)==11||input.LA(1)==16||input.LA(1)==71 ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    pushFollow(FOLLOW_unary_in_mult921);
            	    unary();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop18;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "mult"



    // $ANTLR start "add"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:77:1: add : mult ( ( '+' | '-' ) mult )* ;
    public final void add() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:78:4: ( mult ( ( '+' | '-' ) mult )* )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:78:6: mult ( ( '+' | '-' ) mult )*
            {
            pushFollow(FOLLOW_mult_in_add943);
            mult();

            state._fsp--;


            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:78:11: ( ( '+' | '-' ) mult )*
            loop19:
            do {
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( (LA19_0==12||LA19_0==14) ) {
                    alt19=1;
                }


                switch (alt19) {
            	case 1 :
            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:78:12: ( '+' | '-' ) mult
            	    {
            	    if ( input.LA(1)==12||input.LA(1)==14 ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    pushFollow(FOLLOW_mult_in_add954);
            	    mult();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop19;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "add"



    // $ANTLR start "relation"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:81:1: relation : add ( ( '=' | '!=' | '<' | '<=' | '>' | '>=' ) add )* ;
    public final void relation() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:82:9: ( add ( ( '=' | '!=' | '<' | '<=' | '>' | '>=' ) add )* )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:82:11: add ( ( '=' | '!=' | '<' | '<=' | '>' | '>=' ) add )*
            {
            pushFollow(FOLLOW_add_in_relation980);
            add();

            state._fsp--;


            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:82:15: ( ( '=' | '!=' | '<' | '<=' | '>' | '>=' ) add )*
            loop20:
            do {
                int alt20=2;
                int LA20_0 = input.LA(1);

                if ( (LA20_0==7||(LA20_0 >= 18 && LA20_0 <= 22)) ) {
                    alt20=1;
                }


                switch (alt20) {
            	case 1 :
            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:82:16: ( '=' | '!=' | '<' | '<=' | '>' | '>=' ) add
            	    {
            	    if ( input.LA(1)==7||(input.LA(1) >= 18 && input.LA(1) <= 22) ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    pushFollow(FOLLOW_add_in_relation1007);
            	    add();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop20;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "relation"



    // $ANTLR start "expression"
    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:85:1: expression : relation ( ( 'and' | 'AND' | 'or' | 'OR' | '&&' | '||' ) relation )* ;
    public final void expression() throws RecognitionException {
        try {
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:86:10: ( relation ( ( 'and' | 'AND' | 'or' | 'OR' | '&&' | '||' ) relation )* )
            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:86:12: relation ( ( 'and' | 'AND' | 'or' | 'OR' | '&&' | '||' ) relation )*
            {
            pushFollow(FOLLOW_relation_in_expression1055);
            relation();

            state._fsp--;


            // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:86:21: ( ( 'and' | 'AND' | 'or' | 'OR' | '&&' | '||' ) relation )*
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( (LA21_0==8||LA21_0==23||LA21_0==45||LA21_0==60||LA21_0==75||LA21_0==82) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // F:\\workspace\\DataStore_New_local\\src\\database\\queryparser\\ParserGrammer.g:86:22: ( 'and' | 'AND' | 'or' | 'OR' | '&&' | '||' ) relation
            	    {
            	    if ( input.LA(1)==8||input.LA(1)==23||input.LA(1)==45||input.LA(1)==60||input.LA(1)==75||input.LA(1)==82 ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    pushFollow(FOLLOW_relation_in_expression1081);
            	    relation();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop21;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "expression"

    // Delegated rules


    protected DFA2 dfa2 = new DFA2(this);
    static final String DFA2_eotS =
        "\6\uffff";
    static final String DFA2_eofS =
        "\6\uffff";
    static final String DFA2_minS =
        "\1\4\1\44\2\12\2\uffff";
    static final String DFA2_maxS =
        "\1\4\1\104\2\115\2\uffff";
    static final String DFA2_acceptS =
        "\4\uffff\1\2\1\1";
    static final String DFA2_specialS =
        "\6\uffff}>";
    static final String[] DFA2_transitionS = {
            "\1\1",
            "\1\2\3\uffff\1\2\33\uffff\1\2",
            "\1\4\2\uffff\1\5\44\uffff\1\5\1\3\31\uffff\1\3",
            "\1\4\2\uffff\1\5\44\uffff\1\5\1\3\31\uffff\1\3",
            "",
            ""
    };

    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
    static final short[][] DFA2_transition;

    static {
        int numStates = DFA2_transitionS.length;
        DFA2_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
        }
    }

    class DFA2 extends DFA {

        public DFA2(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 2;
            this.eot = DFA2_eot;
            this.eof = DFA2_eof;
            this.min = DFA2_min;
            this.max = DFA2_max;
            this.accept = DFA2_accept;
            this.special = DFA2_special;
            this.transition = DFA2_transition;
        }
        public String getDescription() {
            return "()* loopback of 18:8: ( IDENT ( 'INTEGER' | 'integer' | 'Integer' ) ( 'Primary Key' | 'primary key' | 'PRIMARY KEY' )* ',' )*";
        }
    }
 

    public static final BitSet FOLLOW_set_in_statement47 = new BitSet(new long[]{0x0040000000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_set_in_statement56 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement64 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_9_in_statement73 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement84 = new BitSet(new long[]{0x0000011000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_set_in_statement86 = new BitSet(new long[]{0x000C000000002000L,0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_statement111 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement123 = new BitSet(new long[]{0x0000011000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_set_in_statement125 = new BitSet(new long[]{0x0008000000000400L,0x0000000000002000L});
    public static final BitSet FOLLOW_10_in_statement153 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_17_in_statement155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_statement196 = new BitSet(new long[]{0x0000004400000000L,0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_statement208 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement227 = new BitSet(new long[]{0x0000900000000000L,0x0000000000000600L});
    public static final BitSet FOLLOW_set_in_statement229 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement244 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_9_in_statement246 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement248 = new BitSet(new long[]{0x0000000000000400L});
    public static final BitSet FOLLOW_10_in_statement250 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_17_in_statement252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_statement286 = new BitSet(new long[]{0x0000022000000000L,0x0000000000000020L});
    public static final BitSet FOLLOW_set_in_statement298 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement309 = new BitSet(new long[]{0x0300000000000000L,0x0000000000010000L});
    public static final BitSet FOLLOW_set_in_statement311 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_9_in_statement330 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_INTEGER_in_statement332 = new BitSet(new long[]{0x0000000000002400L});
    public static final BitSet FOLLOW_13_in_statement336 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_INTEGER_in_statement339 = new BitSet(new long[]{0x0000000000002400L});
    public static final BitSet FOLLOW_10_in_statement343 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_17_in_statement345 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_statement399 = new BitSet(new long[]{0x00C0004400000000L,0x0000000000008004L});
    public static final BitSet FOLLOW_set_in_statement411 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement435 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_17_in_statement438 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_statement488 = new BitSet(new long[]{0x0000000000000810L});
    public static final BitSet FOLLOW_11_in_statement501 = new BitSet(new long[]{0x0000000300000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_statement506 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_statement508 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement510 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_statement512 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement516 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_statement518 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement524 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_statement526 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement528 = new BitSet(new long[]{0x0000000300000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_statement534 = new BitSet(new long[]{0x0000000300000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_statement548 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement561 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_statement563 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_IDENT_in_statement568 = new BitSet(new long[]{0x0C03400000020000L,0x0000000000021000L});
    public static final BitSet FOLLOW_set_in_statement579 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_in_statement592 = new BitSet(new long[]{0x0C03400000020000L,0x0000000000021000L});
    public static final BitSet FOLLOW_set_in_statement607 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_in_statement624 = new BitSet(new long[]{0xA003400053020000L,0x0000000000001000L});
    public static final BitSet FOLLOW_set_in_statement628 = new BitSet(new long[]{0xA0034C0053020000L,0x0000000000001040L});
    public static final BitSet FOLLOW_set_in_statement660 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_INTEGER_in_statement672 = new BitSet(new long[]{0xA0034C0053020000L,0x0000000000001040L});
    public static final BitSet FOLLOW_17_in_statement681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_assignment_in_statement1727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_assignment759 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_20_in_assignment761 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_in_assignment763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_in_term805 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_9_in_term813 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_expression_in_term815 = new BitSet(new long[]{0x0000000000000400L});
    public static final BitSet FOLLOW_10_in_term817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INTEGER_in_term825 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_72_in_negation846 = new BitSet(new long[]{0x0000000000000230L});
    public static final BitSet FOLLOW_term_in_negation849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_negation_in_unary885 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_unary_in_mult906 = new BitSet(new long[]{0x0000000000010802L,0x0000000000000080L});
    public static final BitSet FOLLOW_set_in_mult909 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_unary_in_mult921 = new BitSet(new long[]{0x0000000000010802L,0x0000000000000080L});
    public static final BitSet FOLLOW_mult_in_add943 = new BitSet(new long[]{0x0000000000005002L});
    public static final BitSet FOLLOW_set_in_add946 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_mult_in_add954 = new BitSet(new long[]{0x0000000000005002L});
    public static final BitSet FOLLOW_add_in_relation980 = new BitSet(new long[]{0x00000000007C0082L});
    public static final BitSet FOLLOW_set_in_relation983 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_add_in_relation1007 = new BitSet(new long[]{0x00000000007C0082L});
    public static final BitSet FOLLOW_relation_in_expression1055 = new BitSet(new long[]{0x1000200000800102L,0x0000000000040800L});
    public static final BitSet FOLLOW_set_in_expression1058 = new BitSet(new long[]{0x0000000000005230L,0x0000000000000100L});
    public static final BitSet FOLLOW_relation_in_expression1081 = new BitSet(new long[]{0x1000200000800102L,0x0000000000040800L});

}